测试集loss值下降问题

1 篇文章 0 订阅

首先引入网上的一些说法

train loss 不断下降,test loss不断下降,说明网络仍在学习;
train loss 不断下降,test loss趋于不变,说明网络过拟合;
train loss 趋于不变,test loss不断下降,说明数据集100%有问题;
train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;
train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。
这是我一直核对网络的依据,引用自此处,请点击

自己的网络

主要表现为训练集的精度和loss表现正常,测试集的时候前十五左右的epoch表现正常,精度上升,loss下降,但是15epoch后精度和loss都趋于不变的状态。
然后,也找到了大佬分析的的。。我还准备自己分析,美滋滋一波
这个就是和我上面描述的一样,适合我这种新手

当训练过程中的损失函数不下降时,可能有多种原因导致。下面列举了一些常见的可能原因: 1. 学习率过大或过小:学习率是一个重要的超参数,它决定了每次参数更新的步长。如果学习率设置过大,可能会导致参数在每次更新时跳过最优解,从而无法收敛。相反,学习率设置过小,则会导致收敛速度缓慢。试着调整学习率并观察损失函数的变化。 2. 模型复杂度不适当:如果模型的复杂度过高,可能会导致过拟合现象,即模型在训练集上表现良好但在测试集上表现较差。在这种情况下,损失函数可能在训练过程中不下降。可以尝试减少模型的复杂度,如减少网络层数、减少神经元数量或增加正则化等方法。 3. 数据问题:数据集可能存在噪音、缺失、标签错误或不平衡等问题,这些问题都可能导致模型训练时损失函数不下降。建议仔细检查数据集并进行必要的数据预处理和清洗。 4. 训练集过小:如果训练集的规模较小,可能会导致模型无法充分学习数据的特征,从而导致损失函数不下降。尽量使用更大的训练集,或者尝试使用数据增强技术增加训练样本的多样性。 5. 训练过程中的错误:检查训练过程中是否存在错误,例如错误的损失函数、错误的权重初始化、错误的优化器选择等。确保代码实现正确,并且所有超参数和配置都是合理的。 6. 过早停止:有时候,损失函数在训练初期可能会有一些波动,这是正常现象。如果你设置了早停策略,可能会在波动期间停止训练,导致损失函数不下降。确保早停的条件和时机设置得合理。 综上所述,当损失函数不下降时,需要仔细检查学习率、模型复杂度、数据质量、训练集规模、训练过程中的错误以及早停策略等因素。根据具体情况逐个排查,并针对性地调整相关参数和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值